package com.xoa.dao.WFE;

import com.xoa.model.workflow.FlowProcess;
import com.xoa.model.workflow.FlowRunPrcs;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface WFEFlowProcessMapper {
    int deleteByPrimaryKey(Integer id);

    void insert(FlowProcess record);

    int insertSelective(FlowProcess record);

    FlowProcess selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(FlowProcess record);

    int updateByPrimaryKeyWithBLOBs(FlowProcess record);

    int updateByPrimaryKey(FlowProcess record);

    FlowProcess find(Map<String, Object> maps);

    List<FlowProcess> findFlowId(int flowId);

    List<FlowProcess> findF(int flowId);

    FlowProcess findbyprcsId(Map<String, Object> maps);

    /**
     * 根据flowId和PrcsId查询步骤主键和下一步指向
     * @param maps
     * @return
     */
    FlowProcess getFpByPrcsId(Map<String, Object> maps);

    /**
     * 修改流程节点坐标
     * @param flowProcess
     */
    public  void updateTopAndLeft(FlowProcess flowProcess);

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/6/6 19:42
     * 方法介绍:   我的工作中查询流程
     * 参数说明:
     * @return
     */
    public FlowProcess findProcess(@Param("flowId") Integer flowId, @Param("prcsId") Integer prcsId);

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/6/8 16:26
     * 方法介绍:   连接线删除
     * 参数说明:
     * @return
     */
    public FlowProcess findPrcessLine(@Param("flowId") Integer flowId, @Param("prcsId") Integer prcsId);

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/6/9 10:42
     * 方法介绍:   根据ID查询prcsTo
     * 参数说明:
     * @return
     */
    public FlowProcess findLine(@Param("id") Integer id);



    public List<FlowProcess> selectPricByFlowId(@Param("flowId") Integer flowId);

    /**
     * 对应flowId查询所有流程步骤
     * @param flowId
     * @return
     */
    public List<Integer> selectShowPrcsId(@Param("flowId") Integer flowId);

    FlowProcess findPrcessName(@Param("flowId") Integer flowId, @Param("prcsId") Integer prcsId);

    int deleteByFlowId(Integer flowId);

    public List<FlowProcess> findProcseePrcsTo(Map<String, Object> maps);

    public String findPrcsName(Map<String, Object> maps);


    public String queryFlowId(String runId);

    public List<FlowProcess> findRunIdFlowId(Map map);

    public FlowProcess selectFlowProcessByRunId(@Param("flowId") Integer flowId,@Param("runId") Integer runId);
	
	 public String findFlowData(@Param("flowId") String flowId,@Param("runId") String runId);

	 public String findFlowIdPrcsId(Map map);

}